﻿using System;
using System.Collections.Generic;
using Itau.IM.Carimbador.EntityObject;
using Itau.IM.Common.Mainframe.Book;


namespace Itau.IM.Carimbador.Contract
{
    /// <summary>
    /// Classe de requisição da operação ConsultarIrregular
    /// </summary>
    [BookClass(31000)]
    public class ConsultarTaxaTransferPriceRequest
    {
        #region Propriedades

        [BookStringField (1, 1)]
        private byte Filler
        {
            get { return 0; }
            set { }
        }

        [BookNumberField(2, 1)]
        public int FlagRecarimbo { get; set; }

        [BookNumberField(3, 9)]
        public int CodigoProdutoFinanceiroDerivado { get; set; }

        [BookDateField(12, "dd.MM.yyyy"),
        BookDateField(22, "HH.mm.ss")]
        public DateTime DataHoraOperacao { get; set; }

        [BookDateField(30, "dd.MM.yyyy")]
        public DateTime DataReferenciaOperacao { get; set; }

        [BookNumberField(40, 2)]
        public int QuantidadeParamentros { get; set; }

        [BookCollectionField(42, typeof(BookObjectFieldAttribute), typeof(ParametroEO), 40, "000000000                              ")]
        public List<ParametroEO> Parametros { get; set; }
             
        [BookStringField(1602, 20)]
        public string NomeUsuario { get; set; }

        [BookNumberField(1622, 5)]
        public int QuantidadeDiasCarencia { get; set; }

        [BookNumberField(1627, 2)]
        public int QuantidadeDatasVencimento { get; set; }

        [BookCollectionField(1629, typeof(BookObjectFieldAttribute), typeof(DataVencimentoEO), 10, "          ")]
        public List<DataVencimentoEO> Vencimentos { get; set; }
        
        [BookNumberField(1729, 8, 10)]
        public double ComponentePosTaxaCliente { get; set; }

        [BookNumberField(1747, 5)]
        public int CodigoCategoriaPosTaxaCliente { get; set; }
       
        [BookNumberField(1752, 8, 10)]
        public double ComponentePreTaxaCliente { get; set; }
                
        [BookNumberField(1770, 3)]
        public int BaseTaxaCliente { get; set; }
        
        [BookNumberField(1773, 3)]
        public int BaseTIR { get; set; }

        [BookNumberField(1776, 1)]
        public int TipoAmortizacao { get; set; }
	
        [BookNumberField(1777, 16, 2)]
        public double ValorPrincipalBruto { get; set; }
        
        [BookNumberField(1795, 4)]
        public int QuantidadeParcelas { get; set; }

        [BookCollectionField(1799, typeof(BookObjectFieldAttribute), typeof(FluxoCaixaEO), 500, "          000000000000000000")]
        public List<FluxoCaixaEO> FluxoCaixa { get; set; }

        [BookNumberField(15799, 4)]
        public int MetodoCalculoTaxa { get; set; }
        
        [BookNumberField(15803, 4)]
        public int CodigoClassificacaocontabil { get; set; }
        
        [BookStringField (15807, 3)]
        public string TipoEmpresa { get; set; }

        [BookStringField(15810, 3)]
        public string CodigoEmpresa { get; set; }

        [BookStringField(15813, 2)]
        public string Segmento { get; set; }


        #endregion Propriedades

        #region Métodos

        public ConsultarTaxaTransferPriceRequest()
        {
        }

        #endregion Métodos
    }
}